home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / zm302 / zm302_s.lzh / MPSRC045.LZH / P8_0203.HAS < prev    next >
Text File  |  1996-06-16  |  3KB  |  113 lines

  1. *=======================================================
  2. *
  3. *    8bitPCM 10.4kHz変換
  4. *
  5. *=======================================================
  6.  
  7. PCM8_0203_mac    macro        _vol
  8.  
  9.         moveq.l        #(MIX_SIZE*4)/3-1,d6
  10.         add.l        a0,d6
  11.         cmp.l        a3,d6
  12.         bcs        @f            * 今回の処理中にはトラップしない
  13.  
  14.         * トラップ判定付きの変換
  15.         moveq.l        #(MIX_SIZE*2)/3-1-1,d6
  16. 2:        cmpa.l        a3,a0            * トラップアドレス判定
  17.         bcs        1f
  18.         jsr        (a4)            * トラップ!
  19. 1:        move.b        (a0)+,d0        * PCMデータ取り込み
  20.         ext.w        d0            * 符号拡張
  21.         VOLUME        _vol,d0,d2
  22.         add.w        d0,(a1)+
  23.         add.w        d0,(a1)+
  24.  
  25.         cmpa.l        a3,a0            * トラップアドレス判定
  26.         bcs        1f
  27.         jsr        (a4)            * トラップ!
  28. 1:        move.b        (a0)+,d0        * PCMデータ取り込み
  29.         ext.w        d0            * 符号拡張
  30.         VOLUME        _vol,d0,d2
  31.         add.w        d0,(a1)+
  32.         dbra        d6,2b
  33.  
  34. *        ラストの1回
  35.         cmpa.l        a3,a0            * トラップアドレス判定
  36.         bcs        1f
  37.         jsr        (a4)            * トラップ!
  38. 1:        move.b        (a0)+,d0        * PCMデータ取り込み
  39.         ext.w        d0            * 符号拡張
  40.         VOLUME        _vol,d0,d2
  41.         add.w        d0,(a1)+
  42.         add.w        d0,(a1)+
  43.  
  44.         cmpa.l        a3,a0
  45.         bcs        1f
  46.         jsr        (a4)            * トラップ!
  47. 1:        move.b        (a0)+,d0        * PCMデータ取り込み
  48.         ext.w        d0            * 符号拡張
  49.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  50.         VOLUME        _vol,d0,d2
  51.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  52.         add.w        d0,(a1)+
  53.  
  54.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  55.  
  56.         rts
  57.  
  58.         * トラップ無しの変換
  59.  
  60. @@:        moveq.l        #(MIX_SIZE*2)/3-1-1,d6
  61. 2:        move.b        (a0)+,d0        * PCMデータ取り込み
  62.         ext.w        d0            * 符号拡張
  63.         VOLUME        _vol,d0,d2
  64.         add.w        d0,(a1)+
  65.         add.w        d0,(a1)+
  66.  
  67.         move.b        (a0)+,d0        * PCMデータ取り込み
  68.         ext.w        d0            * 符号拡張
  69.         VOLUME        _vol,d0,d2
  70.         add.w        d0,(a1)+
  71.         dbra        d6,2b
  72.  
  73. *        ラストの1回
  74.         move.b        (a0)+,d0        * PCMデータ取り込み
  75.         ext.w        d0            * 符号拡張
  76.         VOLUME        _vol,d0,d2
  77.         add.w        d0,(a1)+
  78.         add.w        d0,(a1)+
  79.  
  80.         move.b        (a0)+,d0        * PCMデータ取り込み
  81.         ext.w        d0            * 符号拡張
  82.         move.w        d0,CH_LAST_PCM(a5)    * 前回変換終了時のPCM値 = d0.w
  83.         VOLUME        _vol,d0,d2
  84.         move.w        d0,CH_LAST_VPCM(a5)    * 最後のPCM値(音量変換後)
  85.         add.w        d0,(a1)+
  86.  
  87.         move.l        a0,CH_PCM_ADR(a5)    * PCMアドレス = a0.l
  88.  
  89.         rts
  90.   
  91.         endm
  92.  
  93. *=======================================================
  94.  
  95. PCM8_0203_v00:    PCM8_0203_mac    0
  96. PCM8_0203_v01:    PCM8_0203_mac    1
  97. PCM8_0203_v02:    PCM8_0203_mac    2
  98. PCM8_0203_v03:    PCM8_0203_mac    3
  99. PCM8_0203_v04:    PCM8_0203_mac    4
  100. PCM8_0203_v05:    PCM8_0203_mac    5
  101. PCM8_0203_v06:    PCM8_0203_mac    6
  102. PCM8_0203_v07:    PCM8_0203_mac    7
  103. PCM8_0203_v08:    PCM8_0203_mac    8
  104. PCM8_0203_v09:    PCM8_0203_mac    9
  105. PCM8_0203_v10:    PCM8_0203_mac    10
  106. PCM8_0203_v11:    PCM8_0203_mac    11
  107. PCM8_0203_v12:    PCM8_0203_mac    12
  108. PCM8_0203_v13:    PCM8_0203_mac    13
  109. PCM8_0203_v14:    PCM8_0203_mac    14
  110. PCM8_0203_v15:    PCM8_0203_mac    15
  111. PCM8_0203_vnn:    PCM8_0203_mac    'n'
  112. PCM8_0203_non:    PCM8_0203_mac    'x'
  113.